home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Merciful 1
/
Merciful - Disc 1.iso
/
software
/
m
/
motion_master
/
motiomasterii2.dms
/
motiomasterii2.adf
/
lwm
/
getpoints.lwm
Wrap
Text File
|
1991-07-18
|
2KB
|
88 lines
/* getpoints.rexx */
/* get vertices for particle animation */
address "LWModelerARexx.port"
libadd = addlib("LWModelerARexx.port",0)
SIGNAL ON ERROR
SIGNAL ON SYNTAX
MATHLIB="rexxmathlib.library"
IF POS(MATHLIB , SHOW('L')) = 0 THEN
IF ~ADDLIB(MATHLIB , 0 , -30 , 0) THEN DO
call notify(1,"!Can't find "MATHLIB)
exit
END
type = 1
call req_begin "Grab Particle Positions"
id_txt = req_addcontrol("Choose source or target", 'T', "position")
id_type = req_addcontrol("", 'CH','Source Target')
call req_setval id_type, type
if (~req_post()) then do
call req_end
req=0
exit
end
type =req_getval(id_type)
call req_end
If type = 1 then do
File.name = 't:Source'
end
If type = 2 then do
File.name = 't:Target'
end
t=time('e')
n = xfrm_begin()
call meter_begin n+1 , "Grabbing "n" points," ," Be right with you."
do i = 1 to n by 1
/* say i */
parse value xfrm_getpos(i) with x y z .
If i = 1 Then do
call writeheader(mot,x ||" "|| y ||" "|| z)
end
If i ~= 1 Then Do
call writekey(mot,x ||" "|| y ||" "|| z)
end
call meter_step
end
call xfrm_end
call meter_end
call close mot
t=time('e')-t
say 'Whew, I just transformed 'n' points in only 't' seconds.'
call notify(1,'!Holy Smoke, I just grabbed 'n' points','!in only 't'
seconds.')
if (libadd) then call remlib("LWModelerARexx.port")
Exit
Writekey: PROCEDURE EXPOSE i x y z.
arg MotFile, Keys
call writeln(MotFile,Keys)
return 1
WriteHeader: PROCEDURE EXPOSE file.
arg MotFile, keys
if open(MotFile,File.name,'W') then do
call writeln(MotFile,keys)
end
else do
say "Bummer Can't open Motion file ; "|| File.name
end
return 1
SYNTAX:
ERROR:
say 'Sorry, Error #'RC' on line 'SIGL' has been detected.'
say errortext(rc)
say sourceline(SIGL)
t=notify(1,'!Total Bummer Dude!','!An error has been detected.','@'ErrorText(rc),'Line 'SIGL)
call end_all
exit